Lab 13: Create Private S3 Bucket Using Terraform
As part of the data migration process, the Nautilus DevOps team is actively creating several S3 buckets on AWS using Terraform. They plan to utilize both private and public S3 buckets to store the relevant data. Given the ongoing migration of other infrastructure to AWS, it is logical to consolidate data storage within the AWS environment as well.
Create an S3 bucket using Terraform with the following details:
-
The name of the S3 bucket must be
devops-s3-32379. -
The S3 bucket must block all
publicaccess, making it a private bucket.
The Terraform working directory is /home/bob/terraform. Create the main.tf file (do not create a different .tf file) to accomplish this task.
Notes:
- Use Terraform to provision the S3 bucket.
- Right-click under the
EXPLORERsection inVS Codeand selectOpen in Integrated Terminalto launch the terminal. - Ensure the resources are created in the
us-east-1region. - The bucket must have block public access enabled to restrict any public access.
Create main.tf
resource "aws_s3_bucket" "devops-s3-32379" {
bucket = "devops-s3-32379"
tags = {
Name = "devops-s3-32379"
}
}
resource "aws_s3_bucket_acl" "devops-s3-32379" {
bucket = aws_s3_bucket.devops-s3-32379.id
acl = "private"
}
terraform init
terraform plan -out kke.plan && terraform apply kke.plan
# or apply forcefully without creating plan and applying it
terraform apply -auto-approve
aws s3 ls
aws s3api get-public-access-block --bucket devops-s3-32379